<script>
  const worker = new SharedWorker('fetch_from_shared_worker.js');

  let resolve;
  worker.port.onmessage = e => { resolve(e.data); };
  worker.port.start();

  function fetchFromSharedWorker(url) {
    let p = new Promise(r => { resolve = r; });
    worker.port.postMessage({url});
    return p;
  }
</script>
